﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace DAMBAOCLPM
{
    public partial class frmThisinh : Form
    {
        public frmThisinh()
        {
            InitializeComponent();
        }
       
        bool themoi;
        
        string temp_str;
        int temp_int;
        private void frmThisinh_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'qlctDataSet.DONVI' table. You can move, or remove it, as needed.
            this.dONVITableAdapter.Fill(this.qlctDataSet.DONVI);
            this.Width = clsVariables.Width_This - 21;
            this.Height = clsVariables.Height_This - clsVariables.Height_TopMenu - 65;
            this.Top = clsVariables.Height_TopMenu - 66;
            this.Left = 0;

            // Hiển thị tên đơn vị lên comboBox
           
            //--------------------------------

            setnull();
            Lock_Where();
            themoi = false;
            
            
        }
        //Setnull các textBox.
        public void setnull()
        {
            txtSobaodanh.Text ="";
            txtHolot.Text ="";
            txttenthisinh.Text ="";
            txtNoisinh.Text = "";
            txtLop.Text = "";
            cboDonvi.Text ="";
        }
        //-------------------
        //Khóa các textBox và button.
        public void Locktext()
        {
            txtSobaodanh.Enabled = false;
            txtHolot.Enabled = false;
            txttenthisinh.Enabled = false;
            txtNoisinh.Enabled = false;
            txtLop.Enabled = false;
            cboDonvi.Enabled = false;
            dtpNgaysinh.Enabled = false;

            btnThemmoi.Enabled = true;
            btnLuu.Enabled = false;
            btnSua.Enabled = true;
            btnXoa.Enabled = true;
        }
        //--------------------------
        //Mở khóa các textBox và button.
        public void Unlock()
        {
            txtSobaodanh.Enabled = true;
            txtHolot.Enabled = true;
            txttenthisinh.Enabled = true;
            txtNoisinh.Enabled = true;
            txtLop.Enabled = true;
            cboDonvi.Enabled = true;
            dtpNgaysinh.Enabled = true;

            btnThemmoi.Enabled = false;
            btnLuu.Enabled = true;
            btnSua.Enabled = false;
            btnXoa.Enabled = false;
        }
        //-----------------------------
        //Khóa các textBox và button có điều kiện.
        public void Lock_Where()
        {
            if (txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
            {
                Locktext();
                btnXoa.Enabled = false;
                btnSua.Enabled = false;
            }
            else Locktext();
        }
        //---------------------------------------
        //Kiểm tra null mã đơn vị.
        public bool Test_Donvi()
        {
            return cboDonvi.SelectedValue.ToString() == "";
        }
        //----------------------
        //Kiểm tra null SBD.
        public bool Test_SBD()
        {
            return txtSobaodanh.Text == "";
        }
        //-----------------
        //Kiểm tra null họ lót.
        public bool Test_Holot()
        {
            return txtHolot.Text == "";
        }
        //---------------------
        //Kiểm tra null tên.
        public bool Test_Ten()
        {
            return txttenthisinh.Text == "";
        }
        //------------------
        //Kiểm tra null nơi sinh.
        public bool Test_Noisinh()
        {
            return txtNoisinh.Text == "";
        }
        //-----------------------
        //Kiểm tra null lớp.
        public bool Test_lop()
        {
            return txtLop.Text == "";
        }
        //------------------
        //Kiểm tra ngày.
        public bool Test_ngaysinh()
        {
            return dtpNgaysinh.Value == DateTime.Now;
        }
        //-------------
        //Kiểm tra null tìm kiếm.
        public bool Test_timkiem()
        {
            return txtTimkiem.Text == "";
        }

        private void btnThemmoi_Click(object sender, EventArgs e)
        {
            setnull();
            themoi = true;
            Unlock();
            txtSobaodanh.Enabled = false;
            Them_SBD();
        }
        //-----------------------
        public void Them_SBD()
        {
            SqlCommand com = new SqlCommand("SELECT * FROM thisinh ORDER BY sbd", clsConnection.con);
            SqlDataReader dr = com.ExecuteReader();
            while (dr.Read())
            {
                temp_str = dr.GetValue(2).ToString();
            }
            dr.Close();

            temp_int = Convert.ToInt32(temp_str);
            if (temp_int < 99999)
            {
                int n = temp_int+1;
                int i = 1;
                while (n >= 10)
                {
                    n /= 10;
                    i++;
                }
                for (int j = 1; j <= 6 - i; j++)
                    txtSobaodanh.Text += "0";
                txtSobaodanh.Text += (temp_int + 1).ToString();
            }
            else txtSobaodanh.Text = (temp_int + 1).ToString();
        }

        private void txtSobaodanh_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar))
                e.Handled = true;

            if (txtSobaodanh.Text.Length >= 6)
                e.Handled = true;

            if (Char.IsControl(e.KeyChar) && (e.KeyChar == 127 || e.KeyChar == 8 || e.KeyChar == 32)||e.KeyChar==13)
                e.Handled = false;
            if (e.KeyChar == 13) txtHolot.Focus();
        }

        private void txtHolot_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar > 32 && e.KeyChar <= 64) || (e.KeyChar >= 91 && e.KeyChar <= 96) || e.KeyChar >= 123 && e.KeyChar <= 126)
                e.Handled = true;

            if (txtHolot.Text.Length >= 50)
                e.Handled = true;


            if (Char.IsControl(e.KeyChar) && (e.KeyChar == 127 || e.KeyChar == 8 || e.KeyChar == 32)||e.KeyChar==13)
                e.Handled = false;
            if (e.KeyChar == 13) txttenthisinh.Focus();
        }

        private void txttenthisinh_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar > 32&&e.KeyChar <= 64) || (e.KeyChar >= 91 && e.KeyChar <= 96) || e.KeyChar >= 123 && e.KeyChar <= 126)
                e.Handled = true;

            if (txttenthisinh.Text.Length >= 15)
                e.Handled = true;


            if (Char.IsControl(e.KeyChar) && (e.KeyChar == 127 || e.KeyChar == 8 || e.KeyChar == 32) || e.KeyChar == 13)
                e.Handled = false;
            if (e.KeyChar == 13) dtpNgaysinh.Focus();
        }

        private void txtLop_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar > 32&& e.KeyChar <= 47) || (e.KeyChar >= 58 && e.KeyChar <= 64) || (e.KeyChar >= 91 && e.KeyChar <= 96) || e.KeyChar >= 123 && e.KeyChar <= 126)
                e.Handled = true;

            if (txtLop.Text.Length >= 10)
                e.Handled = true;


            if (Char.IsControl(e.KeyChar) && (e.KeyChar == 127 || e.KeyChar == 8 || e.KeyChar == 32) || e.KeyChar == 13)
                e.Handled = false;
            if (e.KeyChar == 13) MessageBox.Show("Xử lý giống click Lưu");

        }

        private void txtNoisinh_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar > 32 && e.KeyChar <= 43) || (e.KeyChar >= 45 && e.KeyChar <= 45) || (e.KeyChar >= 58 && e.KeyChar <= 64) || (e.KeyChar > 91 && e.KeyChar <= 96) || (e.KeyChar >=123 && e.KeyChar <= 126))
                e.Handled = true;

            if (txtNoisinh.Text.Length >= 100)
                e.Handled = true;

            if (Char.IsControl(e.KeyChar) && (e.KeyChar == 127 || e.KeyChar == 8 || e.KeyChar == 32) || e.KeyChar == 13)
                e.Handled = false;
            if (e.KeyChar == 13) txtLop.Focus();
        }

        private void cboDonvi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13) txtHolot.Focus();
        }

        private void dtpNgaysinh_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13) txtNoisinh.Focus();
        }

        private void cboDonvi_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cboDonvi.Text == "" || txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
                btnLuu.Enabled = false;
            else btnLuu.Enabled = true;
        }

        private void txtSobaodanh_TextChanged(object sender, EventArgs e)
        {
            if (cboDonvi.Text == "" || txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
                btnLuu.Enabled = false;
            else btnLuu.Enabled = true;
        }

        private void txtHolot_TextChanged(object sender, EventArgs e)
        {
            if (cboDonvi.Text == "" || txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
                btnLuu.Enabled = false;
            else btnLuu.Enabled = true;
        }

        private void txttenthisinh_TextChanged(object sender, EventArgs e)
        {
            if (cboDonvi.Text == "" || txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
                btnLuu.Enabled = false;
            else btnLuu.Enabled = true;
        }

        private void txtNoisinh_TextChanged(object sender, EventArgs e)
        {
            if (cboDonvi.Text == "" || txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
                btnLuu.Enabled = false;
            else btnLuu.Enabled = true;
        }

        private void txtLop_TextChanged(object sender, EventArgs e)
        {
            if (cboDonvi.Text == "" || txtSobaodanh.Text == "" || txtHolot.Text == "" || txttenthisinh.Text == "" || txtNoisinh.Text == "" || txtLop.Text == "")
                btnLuu.Enabled = false;
            else btnLuu.Enabled = true;
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (themoi == true)
            {
                // Thêm.
                if (Test_space_holot()) MessageBox.Show("Họ và chữ lót không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else if (Test_space_ten()) MessageBox.Show("Tên không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else if (Test_space_noisinh()) MessageBox.Show("Nơi sinh không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else if (Test_space_lop()) MessageBox.Show("Lớp không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else
                {
                    //Thêm vào.
                }

            }
            else
            {
                //Sửa.
                if (Test_space_holot()) MessageBox.Show("Họ và chữ lót không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else if (Test_space_ten()) MessageBox.Show("Tên không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else if (Test_space_noisinh()) MessageBox.Show("Nơi sinh không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else if (Test_space_lop()) MessageBox.Show("Lớp không được để trống", "Thêm", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }
        }
        //Kiểm tra khoảng trắng họ lót.
        public bool Test_space_holot()
        {
            bool kq = false;
            string temp = txtHolot.Text;
            temp = temp.Replace(" ", "");
            if (temp.Length == 0)
            {
                kq = true;
                txtHolot.Clear();
            }
            return kq;
        }
        //--------------------------
        //Kiểm tra khoảng trắng tên
        public bool Test_space_ten()
        {
            bool kq = false;
            string temp = txttenthisinh.Text;
            temp = temp.Replace(" ", "");
            if (temp.Length == 0)
            {
                kq = true;
                txttenthisinh.Clear();
            }
            return kq;
        }
        //-------------------------
        //Kiểm tra khoảng trắng nơi sinh.
        public bool Test_space_noisinh()
        {
            bool kq = false;
            string temp = txtNoisinh.Text;
            temp = temp.Replace(" ", "");
            if (temp.Length == 0)
            {
                kq = true;
                txtNoisinh.Clear();
            }
            return kq;
        }
        //-------------------------------
        //Kiểm tra khoảng trắng lớp.
        public bool Test_space_lop()
        {
            bool kq = false;
            string temp = txtLop.Text;
            temp = temp.Replace(" ", "");
            if (temp.Length == 0)
            {
                kq = true;
                txtLop.Clear();
            }
            return kq;
        }

        private void txtHolot_Validating(object sender, CancelEventArgs e)
        {
            Test_space_holot();
        }

        private void txttenthisinh_Validating(object sender, CancelEventArgs e)
        {
            Test_space_ten();
        }

        private void txtNoisinh_Validating(object sender, CancelEventArgs e)
        {
            Test_space_noisinh();
        }

        private void txtLop_Validating(object sender, CancelEventArgs e)
        {
            Test_space_lop();
        }
        //-------------------------

        
    }
}
